home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- A Software-Based Color-SSTV/FAX480/Wefax System
-
- John Langner's great article on Slow-Scan TV (reference 1)
-
- really peaked up my interest in creating such a system. And his
-
- statement "..be sure to use an external crystal-controlled timing
-
- source....any attempt to use software timing loops is doomed to
-
- failure" was just too much of a challenge to ignore. Since we had
-
- managed to make some respectable 64 color (or gray shades) Wefax
-
- systems (references 2 and 3) for both Commodore and IBM machines
-
- using only a simple clipper interface between the receiver and
-
- computer, it didn't appear that demodulating the SSTV signal would
-
- be that much more difficult. What has resulted is a Color-
-
- SSTV/FAX480/Wefax system for IBM and clone PC's that is essentially
-
- built with software.
-
- We will not re-plow ground that John has already covered so
-
- well. If this article prompt's your interest, you should definitely
-
- read his article (reference 1) to fill in the gaps and learn some-
-
- thing about the history of SSTV.
-
-
-
- HARDWARE
-
- Figure 1 is the simple clipper circuit. It is identical to
-
- that used in reference 3 with the addition of an extra coupling
-
- circuit used in Transmit mode to connect the computer to the trans-
-
- mitter audio input. This should go into the input where the phone-
-
- patch normally connects (often labelled Line input). If you already
-
- have a phone-patch, you can eliminate the isolation transformer, T2
-
- in figure 1, and go directly into the phone line terminals of the
-
- patch. All patches I'm aware of have transformer isolation, but a
-
-
-
-
-
-
-
- simple ohmmeter check will verify that is true in your patch.
-
- Resistor R-x is chosen to set the proper level for the fax audio
-
- going into the transmitter. Fax is a 100% duty cycle signal so
-
- don't set the level higher than your rig can handle without over-
-
- heating. R-x ended up being 43K in my system where I went directly
-
- into the phone-patch.
-
- In the interest of hardware minimization, we have not included
-
- any low pass filtering on the audio coming out of the computer.
-
- This is a square-wave signal rich in harmonics, not unlike what is
-
- generated in the speech clippers in many SSB transceivers. No
-
- additional filtering is required with mechanical or crystal filter
-
- type SSB transmitters, but if you wanted to use this on an old AM
-
- or phasing type SSB rig, or on VHF/UHF FM type transmitters, spe-
-
- cial audio filtering to give the required spectral purity would be
-
- required. Telephone company type approval is required to send such
-
- signals over the phone lines and undoubtedly they would require
-
- very restrictive spectrum control filters. Each of these cases
-
- would require a unique design which we have not addressed.
-
- There is nothing critical about the circuit values in the
-
- schematic nor is the construction critical. Do use a socket for the
-
- IC. Normal perf board construction with short leads works fine.
-
- Hundreds of these have been built with the most common problem
-
- being wiring errors. For some reason the pin numbers on the IC get
-
- confused with the pin numbers on the serial port connector.
-
- The most important piece of hardware is the computer. It
-
- should have an 80286 or better microprocessor. I have used an old
-
- 12 mhz 286 laptop with the system but it definitely gives poorer
-
- results than the 386 machine at 16 mhz or 33 mhz. You need a VGA
-
-
-
-
-
-
-
- color monitor which can provide 640x480 at 256 colors without inter-
-
- lace and a VGA (usually labelled as SVGA) video card that offers a
-
- 640x480x256 mode. There are many, many different types of cards
-
- offering this mode. Our software is configured to directly address
-
- six of the most common SVGA chip types and also includes a VESA
-
- standard choice. If your card does not match one of the 6, you'll
-
- need a VESA driver program (a TSR program) for your specific card.
-
- These are available from the card manufacturer or you may find one
-
- in recent programs you have purchased. I'm told that BBS:(416)729-
-
- 4609 has many of these if all else fails.
-
-
-
- SOFTWARE
-
- As in previous Wefax programs, we have used GWBASIC as the
-
- programming tool. While most of the real guts of the program are
-
- contained in assembly language code (.ASM files), it is interfaced
-
- to the user through BASIC and all of the modifications to the core
-
- program (.ASM files) to adapt them to the multitude of SSTV/FAX
-
- modes is accomplished by POKE's in the BASIC program. This allows
-
- the experimenters with only a limited knowledge of BASIC program-
-
- ming to modify the program to add other modes, etc. In deference to
-
- a few of my friends who complained about learning any BASIC, I have
-
- included a SYSTEM CONFIGURATION list in the programs which can be
-
- filled out by anyone; the program uses this to figure out what
-
- POKE's to make. My work is aimed at the experimentally inclined,
-
- however, so be prepared to learn a little BASIC if you want to
-
- maximise the utility of the system..
-
- One other difference from most recent programs is the system
-
-
-
-
-
-
-
- is strictly keyboard controlled. I find Mouse controlled menu
-
- selection most awkward and since many laptop computers only have
-
- one serial port (where all the FAX action is) they would be pre-
-
- cluded from using the program.
-
-
-
- PROGRAM CONFIGURATION CHOICES
-
- Like Langner does in Pasokon our previous Wefax programs
-
- have counted clock pulses between zero crossings (reference 2) of
-
- the incoming fax signal to measure the audio frequency. The clock
-
- frequency affects the accuracy with which you can measure the audio
-
- frequency, but in general all of the clocks in computers are easily
-
- fast enough to give far more resolution in the measurement than you
-
- can display. The 1.193 mhz clock used by IBM PC's to run the time-
-
- of-day display is a natural choice since it is common to all ma-
-
- chines. It also keys a programmable timer which the PC has avail-
-
- able for generating audio tones. My Wefax programs have used this
-
- tone timer to set up the sample-data period over which you make a
-
- measurement of the incoming audio frequency. The high resolution
-
- programs used a 1024 hz square wave tone with a different sample
-
- being gathered each 1/2 cycle. This 2048 samples per second just
-
- about matches the optimum for the typical Ham receiver bandwidth,
-
- so we decided to retain it for the SSTV program. Also we found that
-
- the unmodified Wefax would copy the AVT-90 mode directly. Of course
-
- it showed up as four (instead of three) successive black and white
-
- frames on the 1024 x768 Wefax screen, but perfectly synchronized.
-
- Further, this sampled-data or pixel rate gave exactly 320 pixel
-
- wide AVT-94 pictures which just matches the screen on a PC. This
-
- suggests that the AVT mode formats may have evolved from computer
-
-
-
-
-
-
-
- based Wefax formats.
-
- Once I had decided to use the Wefax pixel rate, I just copied
-
- SSTV picture data tagged with the mode used and then made a series
-
- of guesses as to how many pixels were in each line until I got a
-
- coherent set of pictures---typically three RGB frames. The result-
-
- ing image allowed me to then measure the length of the various 1200
-
- hz synchronizing pulses, the pixels per color frame, and make a
-
- close estimate of the exact timing for each line. These numbers
-
- were poked back into the Wefax program and then the line timing for
-
- that mode was tweaked into place by copying pictures in that same
-
- mode on the air. Fortunately I didn't spend too many weeks on this
-
- torturous process before I ran into Bert, W5ZR, who just happened
-
- to have that data all collected for the most popular modes. That
-
- along with the wealth of information in Langner's article greatly
-
- increased my rate of progress.
-
- I started with 16 shades (ie,4 bits) per RGB color which gave
-
- me the potential of 4096 (16x16x16) different colors but finally
-
- abandoned that for 64 shades (6 bits) per color which allows
-
- 262,144 different colors. This fully uses the capability inherent
-
- in the most common SVGA video cards. While it takes more memory,
-
- you can always reduce the files to the lower resolution with some
-
- fairly simple manipulation if the compressed file sizes become a
-
- problem. Langner chose 32 shades (5 bits) per color for his Pasokon
-
- color resolution. With Windows driving the computer hardware mar-
-
- ket, memory costs have had the fastest decrease per year of any
-
- hardware element, so at least my choice was consistent with market
-
- trends.
-
-
-
-
-
-
-
- It is worth noting that changing from 4 bits to 6 bits would
-
- have been a major effort on some hardware based systems, but was a
-
- minor change here in the software.
-
- When it came to displaying the resulting color pictures on the
-
- screen, I opted for filling the screen with the picture (like a
-
- TV). Having no need for Mouse selected menus the full screen was
-
- available. Since the color modes had a maximum of 320 pixels wide
-
- and 240 pixels down in the actual picture frames, just doubling
-
- each pixel in both directions gave maximum picture size without
-
- overscan when using a 640x480 VGA screen. This larger display was a
-
- two edged sword,however, since it made defects in the picture proc-
-
- essing more obvious. It forced me to make improvements in both the
-
- fax demodulation software and in the color registration. These
-
- improvements fed over to the Wefax to give much better satellite
-
- photos--ground features are much more visible now.
-
- Since all of the displays I had seen of attempts to show a
-
- variety of color pictures on a 256 color VGA board had left me
-
- unsatisfied, I decided to create my own technique. While describing
-
- how I accomplished it is beyond the scope of this paper, I leave it
-
- for you to judge the results. Figure 2 shows a typical Scottie 1
-
- picture. It fills the screen vertically but not horizontally. The
-
- AVT94 mode in figure 3 fills it horizontally but not vertically.
-
- All of the modes except the AVT modes include a 1200 hz line
-
- sync pulse of some sort to re-sync each line. I chose to use this
-
- only to sync the beginning of each picture and adjusted the crys-
-
- tal-controlled line timing in each mode to eliminate slanted pic-
-
- tures. This is much more immune to interference and after copying
-
- hundreds of pictures on the air I have found this to be the optimum
-
-
-
-
-
-
-
- choice for all but the Robot modes. Here there are a variety of
-
- line timings that show up on the air, so I had to add line sync
-
- capability for the two Robot modes. Actually you can copy in a
-
- synchronous fashion if the station you are working has the latest
-
- Robot modifications so we kept both capabilities.
-
- Ralph Taggart introduced his FAX480 mode (reference 4) while
-
- we were in the midst of developing this program. With the flexibil-
-
- ity built into the BASIC/.ASM structure described above I was able
-
- to add FAX480 to the available modes within a couple of hours.
-
- Since my processing was setup for 64 shades of gray, I kept it for
-
- this mode. Ralph was limited to 16 shades (presumably) by his
-
- hardware base. Once you have the higher pixel resolution, however,
-
- I expect people will also want the real photographic quality of 64
-
- shades. After all, it takes up no more r-f spectrum or time to
-
- transmit than 16 shades.
-
- Finally, we had to make choices on the Transmit program. One
-
- of the common practices in use on SSTV is to retransmit a picture
-
- you just received so people out of the skip zone of the original
-
- transmitter can see it. We included the capability in the
-
- Receive/Transmit program to parrot back any picture just received
-
- in the mode it was originally sent in since that was relatively
-
- simple. While you can transmit any picture you receive and have
-
- saved, we chose to exclude the Robot modes when it came to the
-
- program used to create new picture files. This was both to conserve
-
- our time to more important tasks and because I believe the Robot
-
- color modes will fade with time due to the extremely accurate
-
- tuning required to maintain color fidelity and the fact that
-
-
-
-
-
-
-
- chroma information is shortchanged to maintain compatibility with
-
- the old black and white systems. This is not to denigrate the Robot
-
- systems since they still give some of the best pictures going, but
-
- I have noted that many people with the Robot hardware are now using
-
- Scottie and Martin modes most of the time---and their pictures are
-
- gorgeous!
-
-
-
- DESCRIPTION OF PROGRAMS
-
- RT.BAS---This is the receiving and retransmit program. On
-
- receive, you only need to choose the mode from the menu, and wait
-
- for the picture to be completed. As of this writing Robot 36 and 72
-
- modes are available in either a synchronous or a line-synced mode.
-
- Other modes (all synchronous) are Scottie 1 and 2, Martin 1, AVT90,
-
- AVT94, Wraase 48, FAX480 and Wefax. I have the info to include
-
- AVT125 but it is so inferior to FAX480 that I didn't. AVT188 can be
-
- copied as AVT94 but you won't get the whole picture. I definitely
-
- want to include the Scottie DX mode but haven't yet heard it on the
-
- air. The receiving does not yet include automatic recognition of
-
- modes from the VIS header, but the transmit does include the VIS
-
- headers and the AVT picture sync count down sequence, so others can
-
- use auto recognition on your transmitted pictures.
-
- When receiving, if you fail to get the mode selection made in
-
- time to catch the frame sync you can bypass directly to copying by
-
- hitting the Spacebar. On all but the AVT modes, the next line sync
-
- is picked up and starts the picture. The AVT modes will just copy
-
- out of sync. But since the program allows you to scroll horizontal-
-
- ly across the RGB color frames you can re-sync after the picture is
-
- copied. There is a barely detectable loss in color registration on
-
-
-
-
-
-
-
- AVT modes when you miss the sync, but that's better than losing the
-
- whole picture. Having noted that a few of the systems I've copied
-
- have a nonstandard color registration I also included the ability
-
- to adjust color registration after the picture is received. This
-
- shouldn't be needed very often, but is handy to have.
-
- You also can SAVE the picture--usually after you have scrolled
-
- the picture so the CRT screen frames just the part you want to
-
- keep.
-
- TX.BAS---You can transmit any picture file with this. When
-
- queried, you give the mode and the file name and after a brief
-
- pause while it loads, hit G(o) to transmit. To avoid additional
-
- switching complexity, VOX is used to turn on the transmitter. Since
-
- all pictures start with a long 1900 hz calibration tone, any VOX
-
- delay has no impact.
-
- VU.BAS---As it's name infers, this program allows viewing a
-
- file picture. It has the same adjustments available as the RT.BAS.
-
- One that I haven't mentioned yet, applicable only to the Robot
-
- modes, is the ability to "re-tune" (in 10 hz increments) the pic-
-
- ture as you view it's color balance.
-
- QRM seen in the pictures is of two types, some of it giving
-
- signals inside the 1500-2300 hz range where the fax is and the
-
- other giving signals that measure outside this range. Allowing for
-
- some tuning tolerance, the program identifies color bytes outside
-
- the range as being "ringers" and substitutes the value of the
-
- previous byte for the damaged one. I could have gotten more sophis-
-
- ticated and taken the average of all four surrounding bytes but
-
- when I tried the simpler version it worked so well we kept it. Note
-
-
-
-
-
-
-
- that we are replacing only one color byte, not the whole pixel when
-
- a ringer occurs.(Note to Paul Pagel--we can supply Before and
-
- After pictures to illustrate the improvement if you have room.)
-
- SLIDESHO.BAS---Once you collect a bunch of pictures, this
-
- program gives you the vehicle to display them in slide-show fash-
-
- ion. It is best placed in your DOS or TOOLS directory where it can
-
- be called up from anywhere in the directory tree. My pictures are
-
- collected by mode into compressed archive files. Also, I use a
-
- RAMDISK to access the extra memory above 640k. A simple batch file,
-
- SSARC.BAT, clears the RAMDISK, decompresses the chosen archived
-
- file into many picture files in the RAMDISK, and loads in SLIDE-
-
- SHO. All files are then viewed sequentially wihout having to refer
-
- to their name.
-
- TIFCONV.BAS---This converts pictures which are in a 640x480,
-
- 24 bit color, TIFF format into the proper format to be transmitted
-
- in any of the modes except Robot. TIFF is the most common format
-
- used to transfer higher resolution pictures between programs. I
-
- have used this program with both the Computer Eyes/RT and SSC frame
-
- grabbers. The picture which outputs from this can be viewed with
-
- VU.BAS and of course is bounded by 320x240 with 18 bit color. Four
-
- TIFF bytes are averaged to get each output byte (except in
-
- FAX480). This gives some desirable smoothing to the (affordable)
-
- real time grabber images. In FAX480, the three color bytes per
-
- pixel are combined to give a gray shade pixel.
-
- LABEL.BAS---To add call signs and other text to the SSTV
-
- formatted pictures, this program was generated. It takes any TIFF 1
-
- bit (ie;black and white) file and creates a mask cut out where the
-
- black is. You can superimpose over the SSTV picture where the mask
-
-
-
-
-
-
-
- is cut out either any color you want or transfer a cut out of any
-
- background file. Typical background files might be a picture of a
-
- shiny brass plate, a highly polished piece of mahogany,or an orange
-
- peel---anything with an interesting pattern. The letters look like
-
- they were cut out of the background picture. Obviously you can use
-
- squares or circles in addition to fonts to transfer a piece of one
-
- file onto another one. We use a cheap hand scanner (which I have
-
- never found any previous use for) to capture any interesting fonts
-
- that show up. You can get a three dimensional effect by painting a
-
- color through the mask, then moving the mask a few pixels and
-
- rerunning through LABEL with a background file or another color. Or
-
- run several different masks through LABEL in sequence to get
-
- different colors or patterns on different letters.
-
-
-
- FILE FORMATS
-
- When I started copying pictures, the data bytes were saved in
-
- exactly the sequence received, with formats labelled as S1, S2, M1,
-
- etc. This ends up using 3 bytes per pixel, which seems a bit prof-
-
- ligate. One of the oldtimers in SSTV looked at my pictures which he
-
- thought looked OK but complained that 6 bits per color looked like
-
- too much memory. The Pasokon uses 5 bits in the Targa format which
-
- squeezes the colors for one pixel into 2 bytes. A 50% increase in
-
- bytes did seem to be a high price to pay. After looking at the
-
- Targa format, however, it occurred to me that it might not compress
-
- too well. I took several typical pictures taken in the hamshack and
-
- ran them through to form Targa, TIFF, and Scottie 1 formatted
-
- pictures. Then I compressed all the files using PKARC which
-
-
-
-
-
-
-
- doesn't remove any information. To my surprise, the Scottie 1
-
- files (10 samples) averaged a squash factor of 49% while both the
-
- Targa and TIFF files only squashed by 10 to 11%. So the 3
-
- byte/pixel S1 format used less memory in compressed form than the 2
-
- byte/pixel Targa format! Being a little suspicious of the large
-
- difference, I examined the large collection of archived SSTV files
-
- copied on the air that I have. Here the squash factor averaged only
-
- 34% with the lowest squash factors being heavily QRMed pictures. My
-
- discrimination in deciding what to save has increased as more
-
- pictures were collected and that shows up in the data as improved
-
- squash factors over time. Interesting! There may be other compres-
-
- sion algorithms designed for Targa which do better.
-
-
-
- SUMMARY
-
- We have presented a brief description of a basic Color-
-
- SSTV/FAX480/Wefax system which is constructed almost entirely with
-
- software. It is still being added to. The software is free, is not
-
- copy protected and can be obtained from the ARRL BBS at (888)888-
-
- 8888. Since I expect to be cruising on my sailboat LADY when this
-
- is published, mail won't be answered until late spring (except for
-
- Christmas holiday). You may be able to locate me on the Slow-Scan
-
- frequency, 14,230 khz., if you need information sooner.
-
-
-
- Ben Vester, K3BC
-
- 8/14/93
-
-
-
- References:
-
-
-
-
-
-
-
-
-
- (1) J. Langner, "Slow-Scan TV--It isn't expensive anymore!", QST,
-
- Jan 1993, pp 20-30.
-
-
-
- (2) B. Vester, "C-64 Wefax Improvements", Technical Correspond-
-
- ence, QST, Jan 1988, pp 47-49
-
-
-
- (3) B. Vester, "Improved HF Weather Facsimile Programs", Techni-
-
- cal Correspondence, QST, Sept 1991, pp 40-41
-
-
-
- (4) R. Taggart, "A New Standard for Amateur Radio Analog Facsim-
-
- ile", QST, Feb 1993, pp 31-36
-
-
-
-